package com.sihai.ehr.service;

import com.sihai.core.Limit;
import com.sihai.core.LimitedList;
import com.sihai.core.Sorter;
import com.sihai.ehr.model.biz.EmployeeinfoWork;
import com.sihai.ehr.model.biz.TrainPlanDutyTarget;

/**
 * 培训职务对象服务接口
 * 
 * @author henry
 * 
 */
public interface TrainPlanDutyTargetService {
	/** 获取培训职务对象 */
	TrainPlanDutyTarget getTrainPlanDutyTarget(Long id);

	/**
	 * 根据组织架构获取职务学分列表
	 * 
	 * @param organizationId
	 * @param limit
	 * @param sorter
	 * @return
	 */
	LimitedList<TrainPlanDutyTarget> getTrainPlanDutyTargetsByOrganizationId(
			Long organizationId, Limit limit, Sorter sorter);

	/**
	 * 根据培训内训计划获取培训职务对象列表
	 * 
	 * @param planId
	 * @param limit
	 * @param sorter
	 * @return
	 */
	LimitedList<TrainPlanDutyTarget> getTrainPlanDutyTargets(Long planId,
			Limit limit, Sorter sorter);

	/** 保存培训职务对象 */
	void save(TrainPlanDutyTarget dutyTarget);

	/** 删除培训职务对象根据计划编号 */
	void deleteTrainPlanDutyTargetByPlanId(Long planId);

	/**
	 * 删除培训职务对象
	 * 
	 * @param ids
	 */
	void deleteTrainPlanDutyTarget(String ids);

	/**
	 * 根据计划编号删除培训职务对象
	 * 
	 * @param ids
	 */
	void deleteTrainPlanDutyTargetByPlanIds(String ids);

	/**
	 * 根据计划编号获取员工集合
	 * 
	 * @param planId
	 * @param limit
	 * @param sorter
	 * @return
	 */
	LimitedList<EmployeeinfoWork> getEmploymentsByPlanId(Long planId,
			Limit limit, Sorter sorter);

	/**
	 * 获取总分数
	 * 
	 * @param organizationId
	 * @return
	 */
	Double getTotalCountCreditByOrganizationId(Long organizationId,int year);

}
